Many software development tools are available today for use by software designers (or “developers”) in creating various types of software applications. Software “designers” and “developers” are used interchangeably herein, and generally refer to anyone involved with using a software development tool (or “authoring tool”) for authoring a software application. Authoring may include coding, designing, and/or otherwise creating or modifying the software application. A software application, as used herein, generally refers to any application that may be executed by a processor (or interpreter of some type) in order to perform operations defined by the instructions of the software application, including as an example presenting a user interface to a display. One example of such a software application is a web page, which may be defined in a markup language, such as HTML, XML, etc., JAVA, and/or other underlying page source code that may be read and interpreted by a browser to generate a corresponding output presentation of the web page to a display.
In a software development environment, a developer may interact with a software development tool for writing code, compiling the code, testing or debugging the code, and packaging the resulting application for deployment in a run-time environment. The software development tool may be implemented as a software application that is stored to a computer-readable medium and executed by a computer processor to perform the tasks associated with aiding a developer in the development of a software application. As one example, an integrated development environment (IDE) is commonly used for developing software applications. In general, an IDE is a programming environment that has been packaged as a software application program, typically including a code editor, a compiler, a debugger, and a graphical user interface (GUI) builder. The IDE may be a stand-alone application or may be included as part of one or more existing and compatible applications. IDEs provide a user-friendly framework for many modern programming languages, such as Visual Basic, Java, and PowerBuilder. IDEs for developing markup language (e.g., HTML, XML, etc.) applications are among the most commonly used.
Thus, IDEs provide software authoring tools that allow a developer (e.g., a web developer) to create web pages, websites, interactive applications, and the like for use by end users (e.g., visitors to websites). Various IDEs exist in the current marketplace, such as DREAMWEAVER®, available from Adobe Systems Incorporated, and FRONTPAGE®, available from Microsoft Corporation. DREAMWEAVER is one example of a software authoring tool that allows web developers to design Hypertext Markup Language (HTML) web pages in both a code editor and a graphical-based design time environment. DREAMWEAVER also allows the developer to design in other markup languages, such as, for example, Extensible Markup Language (XML), Extensible HTML (XHTML), Active Server Page (ASP), COLDFUSION™ Markup Language (CFML™), and the like.
Many software application authoring tools, as may be provided by an IDE, are available today for use by software developers in creating various types of software applications, including as examples such software code authoring tools as ADOBE® DREAMWEAVER® and MICROSOFT® FRONTPAGE®. Certain authoring tools, such as ADOBE® DREAMWEAVER®, allow a developer to create a document in an environment that includes both a text-based code view and a graphical-based design view. The code view renders the source code (e.g., markup language code) as text in a portion of the screen and allows the developer to see and manipulate the source code in the document file. For example, the developer may write and edit HTML or Cascading Style Sheets (CSS) code in the code view. The design view (or “display view”), on the other hand, is a What You See Is What You Get (WYSIWYG) view of the document that allows the user to visually manipulate the interpreted and graphically laid-out version of the document, such as, for example, by dragging, dropping, cutting, and pasting visual components. For instance, techniques similar to those employed by browsers may be employed for presenting the resulting output presentation (e.g., web page) of the underlying source code, wherein the developer may manipulate such output presentation within the design view. As the developer works, changes to the document are reflected in both the code view and the design view.
Once a designer creates source code (which may be referred to as a “source page”), such source code is typically stored to a web server that is accessible by clients via a communication network, such as the Internet. The clients may access the web server and download the source code, which a browser executing on the client's computer interprets to generate a corresponding output presentation, as is well known in the art.
Often, designers create web pages (e.g., using DREAMWEAVER or some other authoring tool) for customers who desire to make certain information, products, and/or services available to their clients via such web pages. The designers are typically responsible for authoring source code that, when interpreted by a browser, generates an output presentation having desired graphical layout, as well as containing desired content. The graphical layout may define such “look-and-feel” characteristics of the web page as the arrangement of regions of the page (such as the title of the page, sub-titles of regions contained in the page, sidebars of the page, etc.), color scheme of the page, sizes and/or fonts of text contained in various regions of the page, etc., whereas the content of the web page refers to the specific textual and/or graphical (e.g., pictures, images, etc.) information that is presented in each of the regions of the page.
It may be desirable to change the content of a web page from time to time. That is, a designer's customer may periodically desire to change the content of its web page to present different information, products, and/or services to its clients. Often, a customer may desire to change the content of its web page without altering the graphical layout of the page. Many customers change the content of a web page much more frequently than they change the graphical layout of the page. As an illustrative example, suppose a designer creates a web page for a real estate company; from time to time, the real estate company may desire to change the content of its web page to reflect changes in its real estate listings (e.g., to add new listings of homes that are for sale and/or to remove old listings of homes that have sold, etc.). As another illustrative example, suppose a designer creates a web page for a news company; from time to time, the news company will desire to change the content of its web page to reflect recent news stories.
Traditionally, to make changes to a web page's content, the customer must submit the revised content to the designer, and the designer modifies the underlying source code of the web page such that its output presentation presents the revised content desired by the customer. Often, the designer agrees to a maintenance contract with the customer, wherein the designer agrees to accept content changes from the customer and modify the customer's web page source code to modify the web page's output presentation to reflect the desired content changes. The customer may email the designer a list of desired changes, and the designer then downloads to the designer's computer (from the hosting web server) the web pages to be modified, and the designer uses an authoring tool like DREAMWEAVER to modify the source code to make the content changes. The designer then pushes the modified source pages back up to the web server, and notifies the customer that the changes have been made so that the customer can review the changes to ensure that they are accurate. In this way, the designer remains integral to maintaining the customer's web page content.
Such web page “maintenance” tasks as updating the content of the customer's web page, while typically relatively simple to code for the designer, often become undesirable. For instance, the designer may be required to spend in inordinate amount of time performing maintenance on customer's web pages for updating their content, thus taking time away from other tasks such as attracting new customers, designing new web pages (e.g., for new customers), etc. Additionally, the designer may be a bottleneck to the updating of a customer's web page content. That is, the customer may have to wait an undesirably long time for the designer to update the page source code to implement desired content changes. This may ultimately lead to a point of contention or dissatisfaction in the relationship between the designer and customer.
One solution that has attempted to address this issue in the enterprise arena is the implementation of a content management system. In the enterprise arena, in which websites are being developed within a particular company (e.g., intranet websites that are meant for consumption within the particular company), the company may purchase and deploy a content management system in an attempt to aid maintenance of content on its intranet website. This allows a web designer to rollout the web page, and then various contributors may make changes to the web page's content using the content management system. In general, such content management systems are industrial strength, meant for the enterprise arena, and are undesirably expensive to purchase and implement. Such content management systems contain unnecessary complexity and expense than what is generally needed or desired in many instances, such as in an instance in which a relatively small web designer is working with a number of customers on a limited budget.
Another solution is to employ a client-side desktop application that enables the customer to modify content of the customer's web page. An example of one such client-side desktop application is CONTRIBUTE®, available from Adobe Systems Incorporated. In general, CONTRIBUTE is a software application for editing the content of a website, which allows a wide variety of people within an organization to update web pages by reducing the amount of web design skills necessary for the process. CONTRIBUTE enables non-programmers to modify content of a web page, as it employs an intuitive WYSIWYG development environment which allows those with little or no programming experience to update web page content.
Such a client-side desktop application as CONTRIBUTE is less complex and less expensive than the above-mentioned content management systems, thereby making it a more attractive solution for certain designers. However, there is a general resistance in the industry to use of such a desktop application for content editing. There is a perception by some customers that such a desktop application requires undesirable overhead in terms of deployment and training. That is, a designer's customer may resist employing such a desktop application in order to update the customer's web page content because of the perception that the customer will be required to expend a lot of effort in learning how to use the desktop application, and thus the customer may prefer instead to continue to simply submit content changes to the designer. Thus, customers are often resistant to learning how to use a new software application in order to update their web page content.
Another content editing solution that is known for web pages is the Wiki editing solution. In general, a Wiki is a server program that allows users to collaborate in forming the content of a web page, wherein any user can edit the site content using a regular web browser. A Wiki enables documents to be written collaboratively, in a simple markup language using a web browser. A Wiki is essentially a database for creating, browsing and searching information. Generally, there is no review before modifications are accepted. Many Wikis are open to the general public without the need to register any user account. Sometimes, session log-in is requested to acquire a ‘wiki-signature” cookie for autosigning edits. Many edits, however, can be made in real-time, and appear almost instantaneously online.
Traditionally, content structure and formatting on wikis is implemented with a simplified markup language, sometimes known as “wikitext.” For example, starting a line of text with an asterisk is often used to code an item in a bulleted list. Style and syntax of wikitexts can vary a great deal among wiki implementations, some of which also allow HTML tags.
While Wikis provide a collaborative solution that enable the public to co-author content of a page (and thus enables various contributors to impart their respective knowledge on a given subject to the page for the benefit of the public as a whole), Wikis are not employed by designers to enable the above-mentioned content maintenance by customers whose web pages are not intended to have collaborative authoring that is open to the public. Wikis are not an attractive solution for such content maintenance for several reasons. First, the editing experience provided by a Wiki oftentimes requires the user to create HTML, know HTML tags, or know a particular Wiki language for doing certain types of editing operations, such as bolding text or putting a ruler across the page. Thus, use of the editing environment provided by a Wiki may require the customer to learn a new editing language.
Additionally, the designer forfeits control over the web page edit-ability when employing a Wiki. In general, when a Wiki solution is employed, the users are capable of making many kinds of edits to the page. Designers often desire to maintain a degree of control over just how editable the page is by the customers. Wikis typically provide a very open-ended editing capability, which may enable a customer to perform editing on a web page beyond that which the designer would desire for the customer to be capable of performing. Accordingly, Wikis generally suffer from being too open ended from a designers perspective, while not providing a user-friendly editing experience from the customers perspective.
In view of the above, a desire exists for an improved content management solution that enables a user-friendly way for customers to update content, while providing a designer the ability to control the amount of edit-ability of the page that is afforded to the customer.